package vip.ola.core.entity.code;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import static vip.ola.core.common.util.LocalDateTimeUtil.PATTERN_DATE_TIME;

/**
 * <p>
 * 资金账户流水表
 * </p>
 *
 * @author faker
 * @since 2020-04-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_code_account_history")
public class CodeAccountHistory implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 关联流水id
     */
    private Long parentId;

    /**
     * 用户类型
     */
    private Integer userType;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 所属用户名
     */
    private String username;

    /**
     * 代理ID
     */
    private Long agentId;

    /**
     * 商码ID
     */
    private Long codeBusId;

    /**
     * 变更前金额,单位元
     */
    private BigDecimal beforeAmount;

    /**
     * 变更账户余额,单位元
     */
    private BigDecimal amount;

    /**
     * 变更后账户余额,单位元
     */
    private BigDecimal afterAmount;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 订单金额,单位元
     */
    private BigDecimal orderAmount;

    /**
     * 手续费,单位元
     */
    private BigDecimal fee;

    /**
     * 费率,百分比
     */
    private BigDecimal rate;

    /**
     * 用户利润,单位元
     */
    private BigDecimal userProfit;

    /**
     * 代理分润费率
     */
    private BigDecimal agentRate;

    /**
     * 代理分润
     */
    private BigDecimal agentProfit;

    /**
     * 码商分润费率
     */
    private BigDecimal codeBusRate;

    /**
     * 码商分润
     */
    private BigDecimal codeBusProfit;

    /**
     * 资金变动方向,1-加款,2-减款
     */
    private Integer fundDirection;

    /**
     * 业务类型,1-收款,2-提现,3-调账,4-充值,5-差错处理,6-收益
     */
    private Integer bizType;

    /**
     * 业务类目:10=余额,14=可结算余额,12=冻结金额,13=保证金
     */
    private String bizItem;

    /**
     * 风险预存期
     */
    private Integer riskDay;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建人,0为系统生成
     */
    private Long createId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = PATTERN_DATE_TIME)
    @DateTimeFormat(pattern = PATTERN_DATE_TIME)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = PATTERN_DATE_TIME)
    @DateTimeFormat(pattern = PATTERN_DATE_TIME)
    private LocalDateTime updateTime;


}
